package com.dataextend.mapper.cluster;


import com.alibaba.fastjson.JSONObject;
import com.dataextend.entity.SysUserMybatis;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 *  用户/角色/权限
 */
@Repository
public interface SysUserMapper {

    /**
     *  根据用户名密码查询对应的用户
     */
    JSONObject getUser(@Param("username") String username, @Param("password") String password);



    /**
     *  查询某用户的 角色 菜单列表 权限列表
     */
    JSONObject getUserPermission(String username);


    /**
     *  查询用户数量
     */
    int countUser(JSONObject jsonObject);


    /**
     *  查询用户列表
     */
    List<JSONObject> listUser(Integer offSet, Integer pageRow);


    /**
     *  新增用户
     */
    void addUser(SysUserMybatis sysUserMybatis);


    /**
     *  修改用户
     */
    void updateUser(SysUserMybatis sysUserMybatis);


    /**
     *  角色列表
     */
    List<JSONObject> listRole();


    /**
     *  查询所有权限,给角色分配权限时调用
     */
    List<JSONObject> listAllPermission();


    /**
     *  新增角色
     */
    void insertRole(String role_name);


    /**
     *  批量插入角色的权限
     */
    void insertRolePermission(@Param("role_id") String roleId, @Param("permission_id") List<Integer> permissions);


    /**
     *  查询某角色的全部数据
     *  在删除和修改角色时调用
     */
    JSONObject getRoleAllInfo(@Param("role_id") String roleId);


    /**
     *  删除角色
     */
    void removeRole(@Param("role_id") String roleId);


    /**
     *  删除本角色全部权限
     */
    void removeRoleAllPermission(@Param("role_id") String roleId);


}
